import java.util.Arrays;
import java.util.HashMap;

public class demo1 {
    class Solution {
        public int longestArithSeqLength(int[] nums) {
            int n=nums.length;
            HashMap<Integer,Integer>map=new HashMap<>();
            int[][]dp=new int[n][n];
            for(int i=0;i<n;i++){
                map.put(nums[i],i);
            }
            for(int i=0;i<n;i++){
                Arrays.fill(dp[i],2);
            }
            int sum=2;
            for(int i=1;i<n;i++){
                for(int j=i+1;j<n;j++){
                    int ret=2*nums[i]-nums[j];
                    if(map.containsKey(ret)){
                        dp[i][j]=dp[map.get(ret)][i]+1;
                    }
                    sum=Math.max(sum,dp[i][j]);
                }
            }
            return sum;
        }
    }
}
